export default {
  namespaced: true, // 必须的，开启命名空间
  // 分模块后，state写成函数，函数中返回对象也可以。（和组件中的data一样也行）
  state: {
    age: 20,
    list: [
      { id: 1, name: '宋江' },
      { id: 2, name: '吴用' }
    ]
  },
  // mutations 里面放同步方法；用于更新state数据，而且是更新state数据的【唯一】方案
  // 所有mutation方法的第1个参数，都是state，目的就是为了方便找到数据
  mutations: {
    updateAge (state, n) {
      state.age = n
    }
  },
  // actions 里面专门放异步方法的，比如ajax请求、定时器等等....
  actions: {
    updateAgeAfter2s (store, m) {
      setTimeout(() => {
        store.commit('updateAge', m)
      }, 2000)
    }
  },
  // getters 是仓库中的计算属性，也需要返回计算的结果，和组件中计算属性的差别是，这里的计算属性不能修改
  getters: {
    pingfang (state) {
      return state.age * state.age
    }
  }
}
